写在前面:
我是一个小小的程序员,我的野心是成为一个全栈工程师!!!
正文:
这是我用来记录学习算法的一个系列。希望能与所有人共进步。
这是第三个特殊算法,也涉及到数学,递归。代码及解释如下:
/*******************************
**
** 算法:巴斯卡三角形(杨辉三角)
**
** 问题:
** 1
** 1 1
** 1 2 1
** 1 3 3 1
** 1 4 6 4 1
** ......
** 解决:据观察,
** 1.每个数等于它上方两数之和。
** 2.每行数字左右对称,由1开始逐渐变大。
** 3.第n行的数字有n项。
**
**
** 所以,设m为行数,n为列数,C(m,n)代表第m行的第n列的数值
** 则C(m,n) = C(m-1,n-1)+C(m-1,n),又是个递归
** m<2时,C(m,n) = 1
**
**
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("请输入你想得的位置的数值,示例:想得到第20行第10个数,则输入 20,10 回车即可\n");
int m,n; //分别记录行数和列数
scanf("%